
import Music from './runtime/music.js'; // 导入按钮类
import Home from './home/home.js'; // 导入首页
import Game from './game/game.js'; // 导入游戏页
import DataBus from './databus'; // 导入数据类，用于管理游戏状态和数据
// 初始化系统信息
const systemInfo = tt.getSystemInfoSync();
const canvas = tt.createCanvas(); //创建一个画布
const ctx = canvas.getContext('2d'); //创建一个基于画布的绘图上下文。
GameGlobal.databus = new DataBus(); // 全局数据管理，用于管理游戏状态和数据
GameGlobal.musicManager = new Music(); // 全局音乐管理实例

/**
 * 游戏主函数
 */
export default class Main {
	home = new Home(canvas, ctx, this.render.bind(this)); // 创建首页
	game = new Game(canvas, ctx, this.render.bind(this)); // 创建游戏页

	// 游戏界面元素
	constructor() {
		// 初始配置
		canvas.width = systemInfo.windowWidth;
		canvas.height = systemInfo.windowHeight;
		// 加载图片后开始启动绘画
		this.loadResources().then(() => {
			this.render()
		});
		// 音乐自动播放
		GameGlobal.musicManager.playbgMusic();
	}

	// 绘制首页界面
	render() {
		if (GameGlobal.databus.gameState === "home") {
			this.home.render(ctx)
		}else if (GameGlobal.databus.gameState === "game") {
			this.game.render(ctx)
		}
	}


	// 加载资源
	loadResources() {
		return new Promise((resolve) => {
			// 加载背景图片
			GameGlobal.databus.resources.homeBg = tt.createImage();
			GameGlobal.databus.resources.homeBg.onload = () => checkLoaded();
			GameGlobal.databus.resources.homeBg.src = 'https://xhy-1256039008.cos.ap-shanghai.myqcloud.com/xyx/img/homebg.png';
			// 游戏背景图
			GameGlobal.databus.resources.gameBg = tt.createImage();
			GameGlobal.databus.resources.gameBg.onload = () => checkLoaded();
			GameGlobal.databus.resources.gameBg.src = 'https://xhy-1256039008.cos.ap-shanghai.myqcloud.com/xyx/img/gemgbg.png';
			let loadedCount = 0;
			const total = Object.keys(GameGlobal.databus.resources).length;

			function checkLoaded() {
				if (++loadedCount === total) resolve();
			}
		});
	}
}